Modüller
Python'da modüller, fonksiyonlar, sınıflar ve değişkenler gibi kodlar içeren dosyalardır. Bu modüller, başka bir Python dosyasında kullanılabilir hale getirilmek için içe aktarılır. Modüller, kodun yeniden kullanılabilirliğini artırır ve büyük programların yönetimini kolaylaştırır.
os Modülü
os
modülü, işletim sistemiyle ilgili fonksiyonlar sağlar. Dosya ve dizin işlemleri yapmak, işletim sistemini bilgilerini almak gibi işlemler için kullanılır.
import os
Bu komut, os
modülünü içe aktarır. Ardından modülün sağladığı fonksiyon ve nitelikler kullanılabilir hale gelir.
dir(os) # Modülün barındırdığı fonksiyon ve nitelikleri listelemek
['DirEntry', 'F_OK', 'O_APPEND', 'chdir', 'getcwd', 'listdir', 'mkdir', 'rmdir', ...]
Bu komut, os
modülünün içerdiği tüm fonksiyon ve niteliklerin bir listesini döndürür.
os.name # İşletim sistemimizin adını verir
'nt'
Bu komut, çalışılan işletim sisteminin adını döndürür. Örneğin, Windows için 'nt', Unix için 'posix' gibi.
webbrowser Modülü
webbrowser
modülü, kullanıcının varsayılan web tarayıcısını kullanarak URL'leri açmasını sağlar.
import webbrowser as br
Bu komut, webbrowser
modülünü br
takma adı ile içe aktarır.
br.open("www.google.com")
True
Bu komut, kullanıcının varsayılan web tarayıcısında "www.google.com" adresini açar.
math Modülü
math
modülü, matematiksel işlemler yapmak için fonksiyonlar ve sabitler sağlar.
import math
Bu komut, math
modülünü içe aktarır.
math.factorial(5)
120
Bu komut, 5'in faktöriyelini hesaplar.
datetime Modülü
datetime
modülü, tarih ve zaman ile ilgili sınıflar ve fonksiyonlar sağlar.
import datetime
def su_an():
return datetime.datetime.now()
def bugun():
return datetime.date.today()
su_an()
fonksiyonu, şu anki tarih ve zamanı döndürürken, bugun()
fonksiyonu yalnızca bugünün tarihini döndürür.
su_an()
datetime.datetime(2024, 2, 25, 1, 39, 44, 991908)
bugun()
datetime.date(2024, 2, 25)
Bu komutlar, sırasıyla şu anki tam zamanı ve bugünün tarihini döndürür.
Kendi Modülümüzü Yazalım
Kendi Python modülümüzü oluşturarak, içinde tanımladığımız fonksiyonları başka bir dosyada kullanabiliriz. Örneğin, benim_modulum.py
adında bir dosya oluşturup içine selamla
ve toplama
adında iki fonksiyon yazalım.
from benim_modulum import selamla, toplama
print(selamla("Dünya"))
print(toplama(3, 5))
Merhaba, Dünya! 8
Bu kod, benim_modulum.py
adlı dosyadan selamla
ve toplama
fonksiyonlarını içe aktarır ve bu fonksiyonları kullanarak çıktıları ekrana yazdırır.
Sık Kullanılan Modüller
Random Modülü
random
modülü, rastgele sayılar üretmek için kullanılır.
import random
Bu komut, random
modülünü içe aktarır.
for i in range(10):
print(random.random()) # 0 ile 1 arasında rastgele bir sayı üretir.
Bu döngü, 0 ile 1 arasında rastgele on sayı üretir ve yazdırır.
for i in range(10):
print(random.uniform(10, 30)) # Belirli bir aralıkta rastgele sayı üretir.
Bu döngü, 10 ile 30 arasında rastgele on sayı üretir ve yazdırır.
for i in range(10):
print(random.randint(1, 5)) # Belirli bir aralıkta rastgele tamsayı üretir.
Bu döngü, 1 ile 5 arasında rastgele on tamsayı üretir ve yazdırır.
liste = ["Pembe", "Sarı", "Kırmızı", "Turuncu"]
print(random.choice(liste)) # Listeden rastgele bir eleman seçer.
Bu kod, verilen listeden rastgele bir eleman seçer ve yazdırır.
Zar Atma Simülasyonu
Zar atma simülasyonu, zarların rastgele sonuçlarını modellemek için kullanılabilir.
zarlar = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}
for i in range(100):
zar = random.randint(1, 6)
zarlar[zar] += 1
Bu kod, her bir zar değeri için 100 kez zar atar ve her değerin kaç kez geldiğini sayar.
for zar in zarlar:
print(f"{zar} gelme olasılığı: {zarlar[zar] / 100}")
Bu kod, her bir zar değerinin gelme olasılığını yüzde olarak yazdırır.
alti_alti = 0
deneme_sayisi = 0
while True:
deneme_sayisi += 1
zar1 = random.randint(1, 6)
zar2 = random.randint(1, 6)
if zar1 == 6 and zar2 == 6:
alti_alti += 1
if alti_alti == 10:
print(f"10 kere 6-6 gelmesi için zarlar {deneme_sayisi} kez atıldı.")
break
Bu kod, iki zarın da 6 gelmesi durumunu on kez yakalayana kadar zar atar ve bu işlemin kaç denemede tamamlandığını yazdırır.
Time Modülü
time
modülü, Python programlarında zamanla ilgili işlemleri yapmak için kullanılır. Örneğin, programınızın ne kadar sürede çalıştığını ölçmek veya belirli bir süre bekletmek için bu modülü kullanabilirsiniz.
import time
Bu satır, time
modülünü içe aktarır.
zaman = time.time() # Geçerli zamanın saniye cinsinden değeri.
# Programcıların zamanın başlangıcı olarak kabul ettikleri bir tarih vardır: 1 Ocak 1970
print(zaman)
1708821882.910719
Bu kod, Unix epoch'tan (1 Ocak 1970) itibaren geçen saniye sayısını yazdırır.
Alternatif algoritmalar arasından verimlilik hesabı yaparak bir tanesini seçebiliriz. İşlem süresini ölçmek için time.time()
kullanabiliriz.
baslangic = time.time()
liste = []
for i in range(100000):
liste.append(i)
bitis = time.time()
print(bitis - baslangic)
0.019137859344482422
Bu kod, 100000 elemanın listeye eklenme süresini ölçer ve yazdırır.
datetime
modülü, tarih ve zamanla ilgili daha fazla işlevsellik sağlar.
import datetime
Bu satır, datetime
modülünü içe aktarır.
su_an = datetime.datetime.now()
Bu kod, o anın tarih ve saat bilgisini alır.
su_an
datetime.datetime(2024, 2, 25, 3, 50, 31, 978245)
Bu kod, datetime
nesnesi olarak o anki tarih ve saati döndürür.
su_an.year
2024
Bu kod, şu anki yılı döndürür.
su_an.month
2
Bu kod, şu anki ayı döndürür.
su_an.day
25
Bu kod, şu anki günü döndürür.
an = datetime.datetime.now()
tarih = datetime.datetime.strftime(an, '%c')
tarih
'Sun Feb 25 03:52:01 2024'
Bu kod, mevcut tarih ve saat bilgisini belirli bir biçimlendirme dizesine göre formatlar ve yazdırır.
Başka tarih ve saat biçimlendiricileri de kullanılabilir. Örneğin:
datetime.datetime.strftime(an, '%Y')
'2024'
Bu kod, yılın dört haneli tam halini döndürür.
datetime.datetime.strftime(an, '%X')
'03:52:01'
Bu kod, mevcut saati döndürür.
datetime.datetime.strftime(an, '%d')
'25'
Bu kod, mevcut günü döndürür.
Os Modülü
os
modülü, işletim sistemiyle ilgili işlemleri gerçekleştirmek için kullanılır. Örneğin, mevcut çalışma dizininizi değiştirmek, yeni klasörler oluşturmak veya mevcut dosyalar hakkında bilgi almak için bu modülü kullanabilirsiniz.
import os
Bu satır, os
modülünü içe aktarır.
print(os.getcwd())
C:\Users\gkdem\Desktop\kapsul-ai-egitim
Bu kod, mevcut çalışma dizininin tam yolunu yazdırır.
os.chdir("C:\\Users\\gkdem\\Desktop\\os_modulu")
Bu kod, mevcut çalışma dizinini belirtilen yola değiştirir.
print(os.getcwd())
C:\Users\gkdem\Desktop\os_modulu
Bu kod, yeni çalışma dizininin tam yolunu yazdırır.
print(os.listdir())
[]
Bu kod, mevcut dizindeki dosya ve klasörlerin listesini yazdırır.
print(os.listdir("C:\\Users\\gkdem\\Desktop\\network"))
['1-Introdução en.pdf', '2-Aplicações telemáticas en.pdf', '3-Cablagem estruturada.pdf', '3-Sistema de cablagem.pdf', ...]
Bu kod, belirtilen dizindeki dosya ve klasörlerin listesini yazdırır.
os.mkdir("denemeKlasörü") # Klasör oluşturma
Bu kod, mevcut dizinde yeni bir klasör oluşturur.
os.makedirs("deneme1/deneme2/deneme3") # Birden fazla iç içe klasör oluşturma
Bu kod, iç içe klasörler oluşturur.
os.rmdir("denemeKlasörü") # Klasör silme
Bu kod, belirtilen klasörü siler.
os.removedirs("deneme1/deneme2/deneme3") # Birden fazla iç içe klasör silme
Bu kod, iç içe klasörleri siler.
os.rename("baslangic.docx", "Deneme.docx") # Dosya ismini değiştirmek
Bu kod, belirtilen dosyanın adını değiştirir.
print(os.stat("Deneme.docx")) # Dosya hakkında bilgi alma
os.stat_result(st_mode=33206, st_ino=61361544923149345, st_dev=1176187008, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1708823371, st_mtime=1708823337, st_ctime=1708823337)
Bu kod, belirtilen dosyanın durumu hakkında bilgi verir.
for gecerli_klasor, icindeki_klasorler, icindeki_dosyalar in os.walk(r"C:\Users\gkdem\Desktop\os_modulu"):
print("Geçerli klasör: ", gecerli_klasor)
print("İçindeki klasörler: ", icindeki_klasorler)
print("İçindeki dosyalar: ", icindeki_dosyalar)
Bu kod, belirtilen dizin ve alt dizinlerdeki tüm klasörler ve dosyaları yürür (gezer).
file_path = r'C:\Users\gkdem\Desktop\Figure_1.png'
Bu satır, bir dosya yolunu tanımlar.
if os.path.isfile(file_path): # Dosyanın var olup olmadığını kontrol etmek
print(f"{file_path} bir dosyadır.")
else:
print(f"{file_path} bir dosya değildir veya mevcut değildir.")
C:\Users\gkdem\Desktop\Figure_1.png bir dosyadır.
Bu kod, belirtilen yolun bir dosya olup olmadığını kontrol eder.
# Dizin ve dosya
adlarını birleştirerek dosya yolu oluşturma
file_path = os.path.join('Users', 'gkdem', 'Documents', 'file.txt')
print("Dosya Yolu:", file_path)
Dosya Yolu: Users\gkdem\Documents\file.txt
Bu kod, belirtilen dizin ve dosya adlarını birleştirerek dosya yolu oluşturur.
Örnek
Aşağıdaki örnekte, belirli bir dizindeki tüm .jpg uzantılı dosyaları bulan bir fonksiyon tanımlanır:
import os
def get_jpg_files(directory):
jpg_files = []
contents = os.listdir(directory)
for item in contents:
item_path = os.path.join(directory, item)
if os.path.isfile(item_path) and item.lower().endswith('.jpg'): # dosya uzantılarını kontrol etmek
jpg_files.append(item_path)
return jpg_files
Bu fonksiyon, belirtilen dizindeki tüm .jpg uzantılı dosyaların yolunu bir liste olarak döndürür.
directory_path = r"C:\Users\gkdem\Desktop\sinek"
jpg_files_list = get_jpg_files(directory_path)
print("Bulunan .jpg uzantılı dosyalar:")
for jpg_file in jpg_files_list:
print(jpg_file)
Bu kod parçası, get_jpg_files
fonksiyonunu kullanarak belirtilen dizindeki tüm .jpg dosyalarını bulur ve yazdırır.